#ifndef CAMERAEVENTSHANDLER_H
#define CAMERAEVENTSHANDLER_H

#include "eventshandler.h"
class CameraEventsHandler :
	public EventsHandler
{
public:
	CameraEventsHandler(Ogre::Camera *camera);
	virtual ~CameraEventsHandler(void);

	virtual void keyPressEvent(QKeyEvent *e);
	virtual void keyReleaseEvent(QKeyEvent* e); 
	virtual void mouseMoveEvent(QMouseEvent *e);
    virtual void mousePressEvent(QMouseEvent *e);
    virtual void mouseReleaseEvent(QMouseEvent *e);
    virtual void wheelEvent(QWheelEvent *e);

	virtual bool frameRenderingQueued(const Ogre::FrameEvent& evt);
	void setAspectRatio(Ogre::Real );
private:

	Ogre::Camera* mCamera;
	Ogre::Real mTopSpeed;
	Ogre::Vector3 mVelocity;
	bool mGoingForward;
	bool mGoingBack;
	bool mGoingLeft;
	bool mGoingRight;
	bool mGoingUp;
	bool mGoingDown;
	bool mFastMove;

	bool rightButtonPressed;
	bool leftButtonPressed;
	QPoint clickPos;


};

#endif